﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace FlyingCircusWebIS.Models
{
    public interface IVooService
    {
        List<ValidationResult> ValidarEntidade(Voo entidade);

        void Adicionar(Voo entidade);

        List<ValidationResult> ValidaAdicionar(Voo entidade);

        void Atualizar(Voo entidade);

        List<ValidationResult> ValidaAtualizar(Voo entidade);

        List<ValidationResult> ValidaRemoverPorId(int id);

        void RemoverPorId(int id);

        Voo BuscarPorId(int id);

        List<Voo> Listar();

        List<VooFormatado> ListarVooFormatado();

        List<Aeronave> ListarAeronavesDisponiveis(DateTime dataPartida, DateTime dataChegada);

        List<SelectListItem> ListarItensAeronavesDisponiveis(DateTime dataPartida, DateTime dataChegada);

        List<ValidationResult> ValidarData(string data);

        List<Voo> Filtrar(string cidadePartida, string cidadeChegada, string dataInicial, string dataFinal);

        List<Voo> ListarVoosFiltro(string localPartida, string localChegada, string idAeronave, string idPessoaUsuario);

        List<Pessoa> ListarClientesPorIdVoo(int id);

        List<Voo> ListarUltimosPromocionais(int qnt = 5);

        int TotalReservasParaVoo(int idVoo);
    }
}